#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>

const char* filename = "log.txt";

int main()
{
  // C语言接口
  printf("hello printf\n");
  fprintf(stdout, "hello fprintf\n");
  
  // 系统调用
  const char* msg = "hello write\n";
  write(1, msg, strlen(msg));

  fork();









  // int fd = open(filename, O_CREAT | O_WRONLY | O_TRUNC, 0666);
  //int fd = open("/dev/pts/1", O_CREAT | O_WRONLY | O_APPEND, 0666);
  //if(fd < 0)
  //{
  //  perror("open");
  //  return 1;
  //}

  //dup2(fd, 1);

  //printf("hello world\n");



  ////close(0);
  //close(1);
  ////close(2);
  //int fd = open(filename, O_CREAT | O_WRONLY | O_TRUNC, 0666);
  //if(fd < 0)
  //{
  //  perror("open");
  //  return 1;
  //}

  //printf("printf, fd: %d\n", fd);
  //fprintf(stdout, "fprintf, fd: %d\n", fd);

  //fflush(stdout);

  //close(fd);
  return 0;
}

















//int main()
//{
//  struct stat st;
//  int n = stat(filename, &st);
//  if(n < 0)
//  {
//    return 1;
//  }
//
//  printf("file size: %lu\n", st.st_size);
//
//  // int fd = open(filename, O_CREAT | O_WRONLY | O_TRUNC, 0666);
//  int fd = open(filename, O_RDONLY);
//  if (fd < 0)
//  {
//    perror("open");
//    return 2;
//  }
//
//  printf("fd: %d\n", fd);
//
//  char* file_buffer = (char*)malloc(st.st_size + 1);
//
//  n = read(fd, file_buffer, st.st_size);
//  if(n > 0)
//  {
//    file_buffer[n] = '\0';
//    printf("%s", file_buffer);
//  }
//
//  free(file_buffer);
//
//  // const char* message = "hello Linux\n";
//  // write(fd, message, strlen(message));
//  // write(fd, message, strlen(message));
//  // write(fd, message, strlen(message));
//  // write(fd, message, strlen(message));
//
//  close(fd);
//
//  return 0;
//}
